17.Letter Combinations of a Phone Number
https://leetcode.com/problems/letter-combinations-of-a-phone-number/
每个号码对应3或4个数字,输入一组号码,打印所有可能出现的排列。这道题很明显有BFS和DFS两类做法。
解法一
当处理第n个数字时,实际上就是以n-1次的处理结果加上第n个数字对应的几个字符进行处理。
1 | /** |
在答案中看到另一种BFS的做法,他是以一个Queue作为载体。这种做法很巧妙,但是在写 while 和 for 中条件时还是比较容易出错的。
1 | /** |
解法二
在DFS中,表示当前结果的 String cur,在每次递归中都是一个新的String。一般在DFS的递归之后需要对表示当前结果的值进行回滚,而在这种场景下则不需要。
1 | /** |